﻿using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Linq;
using ILRuntime.CLR.TypeSystem;
using ILRuntime.CLR.Method;
using ILRuntime.Runtime.Enviorment;
using ILRuntime.Runtime.Intepreter;
using ILRuntime.Runtime.Stack;
using ILRuntime.Reflection;
using ILRuntime.CLR.Utils;

namespace ILRuntime.Runtime.Generated
{
	unsafe class UnityEngine_GameObject_Binding
	{
		public static void Register(ILRuntime.Runtime.Enviorment.AppDomain app)
		{
			BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
			MethodBase method;
			Type[] args;
			Type type = typeof(UnityEngine.GameObject);
			args = new Type[] { typeof(UnityEngine.PrimitiveType) };
			method = type.GetMethod("CreatePrimitive", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, CreatePrimitive_0);
			args = new Type[] { typeof(System.Type) };
			method = type.GetMethod("GetComponent", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponent_1);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("GetComponent", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponent_2);
			args = new Type[] { typeof(System.Type), typeof(System.Boolean) };
			method = type.GetMethod("GetComponentInChildren", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponentInChildren_3);
			args = new Type[] { typeof(System.Type) };
			method = type.GetMethod("GetComponentInChildren", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponentInChildren_4);
			args = new Type[] { typeof(System.Type) };
			method = type.GetMethod("GetComponentInParent", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponentInParent_5);
			args = new Type[] { typeof(System.Type) };
			method = type.GetMethod("GetComponents", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponents_6);
			args = new Type[] { typeof(System.Type), typeof(System.Collections.Generic.List<UnityEngine.Component>) };
			method = type.GetMethod("GetComponents", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponents_7);
			args = new Type[] { typeof(System.Type) };
			method = type.GetMethod("GetComponentsInChildren", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponentsInChildren_8);
			args = new Type[] { typeof(System.Type), typeof(System.Boolean) };
			method = type.GetMethod("GetComponentsInChildren", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponentsInChildren_9);
			args = new Type[] { typeof(System.Type) };
			method = type.GetMethod("GetComponentsInParent", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponentsInParent_10);
			args = new Type[] { typeof(System.Type), typeof(System.Boolean) };
			method = type.GetMethod("GetComponentsInParent", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, GetComponentsInParent_11);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("FindWithTag", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, FindWithTag_12);
			args = new Type[] { typeof(System.String), typeof(UnityEngine.SendMessageOptions) };
			method = type.GetMethod("SendMessageUpwards", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, SendMessageUpwards_13);
			args = new Type[] { typeof(System.String), typeof(UnityEngine.SendMessageOptions) };
			method = type.GetMethod("SendMessage", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, SendMessage_14);
			args = new Type[] { typeof(System.String), typeof(UnityEngine.SendMessageOptions) };
			method = type.GetMethod("BroadcastMessage", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, BroadcastMessage_15);
			args = new Type[] { typeof(System.Type) };
			method = type.GetMethod("AddComponent", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, AddComponent_16);
			args = new Type[] { };
			method = type.GetMethod("get_transform", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, get_transform_17);
			args = new Type[] { };
			method = type.GetMethod("get_layer", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, get_layer_18);
			args = new Type[] { typeof(System.Int32) };
			method = type.GetMethod("set_layer", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, set_layer_19);
			args = new Type[] { typeof(System.Boolean) };
			method = type.GetMethod("SetActive", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, SetActive_20);
			args = new Type[] { };
			method = type.GetMethod("get_activeSelf", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, get_activeSelf_21);
			args = new Type[] { };
			method = type.GetMethod("get_activeInHierarchy", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, get_activeInHierarchy_22);
			args = new Type[] { };
			method = type.GetMethod("get_isStatic", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, get_isStatic_23);
			args = new Type[] { typeof(System.Boolean) };
			method = type.GetMethod("set_isStatic", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, set_isStatic_24);
			args = new Type[] { };
			method = type.GetMethod("get_tag", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, get_tag_25);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("set_tag", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, set_tag_26);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("CompareTag", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, CompareTag_27);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("FindGameObjectWithTag", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, FindGameObjectWithTag_28);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("FindGameObjectsWithTag", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, FindGameObjectsWithTag_29);
			args = new Type[] { typeof(System.String), typeof(System.Object), typeof(UnityEngine.SendMessageOptions) };
			method = type.GetMethod("SendMessageUpwards", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, SendMessageUpwards_30);
			args = new Type[] { typeof(System.String), typeof(System.Object) };
			method = type.GetMethod("SendMessageUpwards", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, SendMessageUpwards_31);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("SendMessageUpwards", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, SendMessageUpwards_32);
			args = new Type[] { typeof(System.String), typeof(System.Object), typeof(UnityEngine.SendMessageOptions) };
			method = type.GetMethod("SendMessage", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, SendMessage_33);
			args = new Type[] { typeof(System.String), typeof(System.Object) };
			method = type.GetMethod("SendMessage", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, SendMessage_34);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("SendMessage", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, SendMessage_35);
			args = new Type[] { typeof(System.String), typeof(System.Object), typeof(UnityEngine.SendMessageOptions) };
			method = type.GetMethod("BroadcastMessage", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, BroadcastMessage_36);
			args = new Type[] { typeof(System.String), typeof(System.Object) };
			method = type.GetMethod("BroadcastMessage", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, BroadcastMessage_37);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("BroadcastMessage", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, BroadcastMessage_38);
			args = new Type[] { typeof(System.String) };
			method = type.GetMethod("Find", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, Find_39);
			args = new Type[] { };
			method = type.GetMethod("get_scene", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, get_scene_40);
			args = new Type[] { };
			method = type.GetMethod("get_gameObject", flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, get_gameObject_41);



			app.RegisterCLRCreateDefaultInstance(type, () => new UnityEngine.GameObject());
			app.RegisterCLRCreateArrayInstance(type, s => new UnityEngine.GameObject[s]);

			args = new Type[] { typeof(System.String) };
			method = type.GetConstructor(flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, Ctor_0);
			args = new Type[] { };
			method = type.GetConstructor(flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, Ctor_1);
			args = new Type[] { typeof(System.String), typeof(System.Type[]) };
			method = type.GetConstructor(flag, null, args, null);
			app.RegisterCLRMethodRedirection(method, Ctor_2);

		}


		static StackObject* CreatePrimitive_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.PrimitiveType @type = (UnityEngine.PrimitiveType)typeof(UnityEngine.PrimitiveType).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);


			var result_of_this_method = UnityEngine.GameObject.CreatePrimitive(@type);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponent_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponent(@type);

			object obj_result_of_this_method = result_of_this_method;
			if (obj_result_of_this_method is CrossBindingAdaptorType)
			{
				return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
			}
			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponent_2(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @type = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponent(@type);

			object obj_result_of_this_method = result_of_this_method;
			if (obj_result_of_this_method is CrossBindingAdaptorType)
			{
				return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
			}
			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponentInChildren_3(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Boolean @includeInactive = ptr_of_this_method->Value == 1;

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponentInChildren(@type, @includeInactive);

			object obj_result_of_this_method = result_of_this_method;
			if (obj_result_of_this_method is CrossBindingAdaptorType)
			{
				return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
			}
			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponentInChildren_4(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponentInChildren(@type);

			object obj_result_of_this_method = result_of_this_method;
			if (obj_result_of_this_method is CrossBindingAdaptorType)
			{
				return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
			}
			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponentInParent_5(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponentInParent(@type);

			object obj_result_of_this_method = result_of_this_method;
			if (obj_result_of_this_method is CrossBindingAdaptorType)
			{
				return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
			}
			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponents_6(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponents(@type);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponents_7(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Collections.Generic.List<UnityEngine.Component> @results = (System.Collections.Generic.List<UnityEngine.Component>)typeof(System.Collections.Generic.List<UnityEngine.Component>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.GetComponents(@type, @results);

			return __ret;
		}

		static StackObject* GetComponentsInChildren_8(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponentsInChildren(@type);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponentsInChildren_9(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Boolean @includeInactive = ptr_of_this_method->Value == 1;

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponentsInChildren(@type, @includeInactive);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponentsInParent_10(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponentsInParent(@type);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* GetComponentsInParent_11(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Boolean @includeInactive = ptr_of_this_method->Value == 1;

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.GetComponentsInParent(@type, @includeInactive);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* FindWithTag_12(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @tag = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);


			var result_of_this_method = UnityEngine.GameObject.FindWithTag(@tag);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* SendMessageUpwards_13(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.SendMessageOptions @options = (UnityEngine.SendMessageOptions)typeof(UnityEngine.SendMessageOptions).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.SendMessageUpwards(@methodName, @options);

			return __ret;
		}

		static StackObject* SendMessage_14(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.SendMessageOptions @options = (UnityEngine.SendMessageOptions)typeof(UnityEngine.SendMessageOptions).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.SendMessage(@methodName, @options);

			return __ret;
		}

		static StackObject* BroadcastMessage_15(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.SendMessageOptions @options = (UnityEngine.SendMessageOptions)typeof(UnityEngine.SendMessageOptions).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.BroadcastMessage(@methodName, @options);

			return __ret;
		}

		static StackObject* AddComponent_16(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Type @componentType = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.AddComponent(@componentType);

			object obj_result_of_this_method = result_of_this_method;
			if (obj_result_of_this_method is CrossBindingAdaptorType)
			{
				return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
			}
			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* get_transform_17(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.transform;

			object obj_result_of_this_method = result_of_this_method;
			if (obj_result_of_this_method is CrossBindingAdaptorType)
			{
				return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
			}
			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* get_layer_18(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.layer;

			__ret->ObjectType = ObjectTypes.Integer;
			__ret->Value = result_of_this_method;
			return __ret + 1;
		}

		static StackObject* set_layer_19(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Int32 @value = ptr_of_this_method->Value;

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.layer = value;

			return __ret;
		}

		static StackObject* SetActive_20(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Boolean @value = ptr_of_this_method->Value == 1;

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.SetActive(@value);

			return __ret;
		}

		static StackObject* get_activeSelf_21(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.activeSelf;

			__ret->ObjectType = ObjectTypes.Integer;
			__ret->Value = result_of_this_method ? 1 : 0;
			return __ret + 1;
		}

		static StackObject* get_activeInHierarchy_22(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.activeInHierarchy;

			__ret->ObjectType = ObjectTypes.Integer;
			__ret->Value = result_of_this_method ? 1 : 0;
			return __ret + 1;
		}

		static StackObject* get_isStatic_23(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.isStatic;

			__ret->ObjectType = ObjectTypes.Integer;
			__ret->Value = result_of_this_method ? 1 : 0;
			return __ret + 1;
		}

		static StackObject* set_isStatic_24(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Boolean @value = ptr_of_this_method->Value == 1;

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.isStatic = value;

			return __ret;
		}

		static StackObject* get_tag_25(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.tag;

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* set_tag_26(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @value = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.tag = value;

			return __ret;
		}

		static StackObject* CompareTag_27(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @tag = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.CompareTag(@tag);

			__ret->ObjectType = ObjectTypes.Integer;
			__ret->Value = result_of_this_method ? 1 : 0;
			return __ret + 1;
		}

		static StackObject* FindGameObjectWithTag_28(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @tag = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);


			var result_of_this_method = UnityEngine.GameObject.FindGameObjectWithTag(@tag);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* FindGameObjectsWithTag_29(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @tag = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);


			var result_of_this_method = UnityEngine.GameObject.FindGameObjectsWithTag(@tag);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* SendMessageUpwards_30(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 4);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.SendMessageOptions @options = (UnityEngine.SendMessageOptions)typeof(UnityEngine.SendMessageOptions).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.Object @value = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.SendMessageUpwards(@methodName, @value, @options);

			return __ret;
		}

		static StackObject* SendMessageUpwards_31(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Object @value = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.SendMessageUpwards(@methodName, @value);

			return __ret;
		}

		static StackObject* SendMessageUpwards_32(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.SendMessageUpwards(@methodName);

			return __ret;
		}

		static StackObject* SendMessage_33(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 4);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.SendMessageOptions @options = (UnityEngine.SendMessageOptions)typeof(UnityEngine.SendMessageOptions).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.Object @value = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.SendMessage(@methodName, @value, @options);

			return __ret;
		}

		static StackObject* SendMessage_34(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Object @value = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.SendMessage(@methodName, @value);

			return __ret;
		}

		static StackObject* SendMessage_35(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.SendMessage(@methodName);

			return __ret;
		}

		static StackObject* BroadcastMessage_36(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 4);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.SendMessageOptions @options = (UnityEngine.SendMessageOptions)typeof(UnityEngine.SendMessageOptions).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.Object @parameter = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.BroadcastMessage(@methodName, @parameter, @options);

			return __ret;
		}

		static StackObject* BroadcastMessage_37(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 3);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Object @parameter = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.BroadcastMessage(@methodName, @parameter);

			return __ret;
		}

		static StackObject* BroadcastMessage_38(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @methodName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			instance_of_this_method.BroadcastMessage(@methodName);

			return __ret;
		}

		static StackObject* Find_39(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @name = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);


			var result_of_this_method = UnityEngine.GameObject.Find(@name);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* get_scene_40(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.scene;

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* get_gameObject_41(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			UnityEngine.GameObject instance_of_this_method = (UnityEngine.GameObject)typeof(UnityEngine.GameObject).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			var result_of_this_method = instance_of_this_method.gameObject;

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}




		static StackObject* Ctor_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 1);
			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.String @name = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);


			var result_of_this_method = new UnityEngine.GameObject(@name);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* Ctor_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* __ret = ILIntepreter.Minus(__esp, 0);

			var result_of_this_method = new UnityEngine.GameObject();

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}

		static StackObject* Ctor_2(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
		{
			ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
			StackObject* ptr_of_this_method;
			StackObject* __ret = ILIntepreter.Minus(__esp, 2);
			ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
			System.Type[] @components = (System.Type[])typeof(System.Type[]).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);

			ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
			System.String @name = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
			__intp.Free(ptr_of_this_method);


			var result_of_this_method = new UnityEngine.GameObject(@name, @components);

			return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
		}


	}
}